﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FinanceGoldPointDal.DTO
{
    /// <summary>
    /// Classe per ritornare i dati 
    /// </summary>
    /// <typeparam name="T"></typeparam>
    [Serializable]
    public class RetData<T>
    {
        public Exception Eccezione { get; set; }
        public bool HasErrors { get; set; }
        public bool HasNullData { get; set; }
        public T Dati { get; set; }
        public IEnumerable<String> ErroriList { get; set; }


        //public object DatiObj = null;

        public RetData(T pDati)
        {
            Eccezione = null; ;
            HasErrors = false;
            Dati = pDati;
            HasNullData = (pDati == null);

        }


        public RetData(Exception pEccezione )
        {
            Eccezione = pEccezione;
            HasErrors = true;
            HasNullData = (Dati == null);
            Dati = default(T);
            
        }

        public RetData(Exception pEccezione, IEnumerable<String> pErrori)
        {
            Eccezione = pEccezione;
            HasErrors = true;
            HasNullData = (Dati == null);
            Dati = default(T);
            ErroriList = pErrori;            
        }

        public RetData(Exception pEccezione, T pDati)
        {
            Eccezione = pEccezione;
            HasErrors = true;
            Dati = pDati;
            HasNullData = (pDati == null);
            ErroriList = null ;
        }

        public RetData(bool pHasErrors, T pDati)
        {
            Eccezione = null; ;
            HasErrors = pHasErrors;
            Dati = pDati;
            HasNullData = (pDati == null);
        }

      

    }
}
